合并 Robocup-SSL/ssl-game-controller 到 lkhcode/ssl-game-controller - #2
Merged
Conversation
--------- Co-authored-by: Nicolai Ommer <nicolai.ommer@gmail.com>
Added Robocup Junior SSL Team for the upcoming world open
There was a problem hiding this comment.
Pull request overview
This PR appears to merge upstream changes into lkhcode/ssl-game-controller, updating protobuf definitions and regenerating bindings, adding a new “continue action” to correct ball-left-field team attribution, and updating dependency/container/CI versions across the stack.
Changes:
- Add
ContinueAction_CORRECT_BALL_LEFT_FIELD_TEAMand implement backend logic to surface/perform a correction action for ball-left-field events. - Adjust robot counting logic to exclude a goal-side substitution zone and use it in engine and remote control reporting.
- Refresh generated protobuf outputs, frontend UI tweaks (protocol item truncation), and bump Go/Node dependencies plus container/CI image digests.
Reviewed changes
Copilot reviewed 19 out of 23 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| proto/vision/ssl_vision_detection.proto | Formatting/whitespace normalization in vision detection proto messages. |
| proto/engine/ssl_gc_engine.proto | Adds new continue action enum value CORRECT_BALL_LEFT_FIELD_TEAM. |
| internal/app/statemachine/change_switchcolors.go | Extends color-switch behavior to also swap command team fields (but currently misses game-state team). |
| internal/app/statemachine/change_acceptproposal.go | Improves proposal merge logic for goal events by merging additional goal fields. |
| internal/app/rcon/server_remotecontrol.go | Uses substitution-zone-excluding robot count for remote control state reporting. |
| internal/app/engine/ssl_gc_engine.pb.go | Regenerated Go protobuf output reflecting the new continue action enum value. |
| internal/app/engine/process_continue_perform.go | Implements execution of the new correction continue action by emitting a corrected game event. |
| internal/app/engine/process_continue_next_command.go | Uses substitution-zone-excluding robot count for “too many robots” checks. |
| internal/app/engine/process_continue_next_action.go | Surfaces the new correction action when exactly one ball-left-field event exists. |
| internal/app/engine/process_botremoved.go | Uses GameState.IsRunning() helper instead of direct enum comparison. |
| internal/app/engine/common.go | Updates substitution-zone logic and exposes NumTeamRobotsExcludingSubstitutionZone. |
| go.sum | Updates module checksums for bumped Go dependencies. |
| go.mod | Bumps ssl-go-tools, x/net, and x/sys. |
| frontend/src/proto/engine/ssl_gc_engine_pb.ts | Regenerated TS protobuf output to include the new continue action enum value. |
| frontend/src/helpers/texts.ts | Updates continue action labels (but missing label for the new continue action). |
| frontend/src/components/protocol/ProtocolItem.vue | Adds CSS/classes to enable ellipsis truncation in protocol list titles. |
| frontend/package.json | Bumps frontend dev dependencies (notably ESLint and Vue tsconfig). |
| frontend/package-lock.json | Lockfile updates corresponding to the dependency bumps. |
| docker-compose.yaml | Updates referenced images/tags/digests for related services. |
| cmd/ssl-team-client/Dockerfile | Updates base image digests. |
| cmd/ssl-ref-client/Dockerfile | Updates base image digests. |
| cmd/ssl-game-controller/Dockerfile | Updates node/go/alpine image digests for build/runtime stages. |
| .circleci/config.yml | Updates CircleCI base image digests/tags (Node, Go, base). |
Files not reviewed (2)
- frontend/package-lock.json: Language not supported
- internal/app/engine/ssl_gc_engine.pb.go: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+13
to
+19
| // 'NextCommand' and 'Command' are bound to the team, not the color, so we have to also switch these | ||
| if newState.NextCommand != nil && newState.NextCommand.ForTeam != nil { | ||
| *newState.NextCommand.ForTeam = newState.NextCommand.ForTeam.Opposite() | ||
| } | ||
| if newState.Command != nil && newState.Command.ForTeam != nil { | ||
| *newState.Command.ForTeam = newState.Command.ForTeam.Opposite() | ||
| } |
Comment on lines
189
to
193
| case 'CHALLENGE_ACCEPT': | ||
| return 'Accept Challenge 接受异议' | ||
| case 'CHALLENGE_REJECT': | ||
| return 'Reject Challenge 反对异议' | ||
| return 'Reject Challenge' | ||
| case 'TYPE_UNKNOWN': |
Comment on lines
+168
to
+172
| func mergeGoal(target *state.GameEvent_Goal, goals []*state.GameEvent_Goal) { | ||
| var maxBallHeight []*float32 | ||
| var numRobotsByTeam []*uint32 | ||
| for _, g := range goals { | ||
| maxBallHeight = append(maxBallHeight, g.MaxBallHeight) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.